// 加载内置模块
const path = require('path');

// 加载自定义模块
const db = require(path.join(__dirname, 'db.js'))


// 加载第三方模块
const express = require('express');
const jwt = require('jsonwebtoken');
const expressJWT = require('express-jwt');
const session = require('express-session');
const cors = require('cors');
const multer = require('multer')
const upload = multer({ dest: 'uploads/' });

const app = express();

app.listen(3006, () => console.log('服务开启'));


// 配置中间件
const secretKey = 'yuan';
app.use(cors({
    origin: true, // 意思是设置 Access-Control-Allow-Origin: 发送请求的源
    credentials: true // 表示响应该请求
}))
// 开放静态资源
app.use(express.static(path.join(__dirname, 'uploads')))

app.use(express.urlencoded({ extended: false }));
app.use(expressJWT({ secret: secretKey }).unless({ path: [/^\/api\//] }));




// app.js 中，将路由导入，注册成中间件
const login = require(path.join(__dirname, 'router', 'login.js'));
app.use(login)

// app.use(require('./router/heroes.js'));
app.use(require(path.join(__dirname, 'router', 'heroes.js')));





// 设置错误中间件(它必须放到所有的接口后面)
app.use((err, req, res, next) => {
    if (err.name === 'UnauthorizedError') {
        res.json({ status: 1, message: '身份认证失败' });
    }
});